package io.gitee.devaper.starlight.security.event

import org.springframework.context.ApplicationEvent

/**
 * 登出事件
 *
 * 所有的登出都要实现该类, 而不是取处理、监听LogoutSuccessEvent
 *    例如在ConcurrentSessionFilter用户在访问时发现被过期了, 那么就会发一个LogoutSuccessEvent, 但是这不该被处理
 *    设想一下, 如果用户A登录了自己的账号将用户B挤下去了, 然后用户A进入房间看电影了, 用户B又访问了并且发现过期了, 那么发出一个LogoutSuccessEvent, 你觉得给用户A踢出房间合适吗
 */
abstract class AbstractLogoutEvent(val principal: Any) : ApplicationEvent(principal)